package com.skytech.tax.customsdatawarehouse.electronicport.proceedspayment.exportproceeds.resource;

import com.skytech.tax.customsdatawarehouse.electronicport.proceedspayment.exportproceeds.domain.service.ExportProceedsService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author Lianhong
 * @since 2021/11/19
 */
@RestController
@RequestMapping("/e-port/export-proceeds")
public class ExportProceedsResource {

    @Resource
    private ExportProceedsService exportProceedsService;


    /**
     * 保存出口收汇
     *
     * @param exportProceeds 出口收汇
     */
    @PostMapping
    public String saveExportProceeds(@RequestBody String exportProceeds) {
        return exportProceedsService.save(exportProceeds);
    }

    /**
     * 查询出口收汇
     *
     * @param entryId 报关单号
     */
    @GetMapping("{entryId}")
    public String details(@PathVariable String entryId) {
        return exportProceedsService.details(entryId);
    }

    /**
     * 删除出口收汇
     *
     * @param entryId 报关单号
     */
    @DeleteMapping("{entryId}")
    public void remove(@PathVariable String entryId) {
        exportProceedsService.remove(entryId);
    }

    /**
     * 判断是否存在出口收汇
     *
     * @return entryId-01,entryId-02,...
     */
    @PostMapping("exists")
    public String existsExportProceeds(@RequestBody List<String> entryIds) {
        return exportProceedsService.existsExportProceeds(entryIds);
    }

    /**
     * 判断是否存在出口收汇
     *
     * @param entryId 报关单号
     * @return 是否存在
     */
    @GetMapping("{entryId}/exists")
    public boolean existsExportProceed(@PathVariable String entryId) {
        return exportProceedsService.exists(entryId);
    }


    /**
     * 查询出口收汇文件名
     *
     * @param entryId 出口报关单号
     * @return 阿里云存储文件名
     */
    @GetMapping("{entryId}/file")
    public String exportProceedsFile(@PathVariable String entryId) {
        return exportProceedsService.exportProceedsFile(entryId);
    }

    /**
     * 保存出口收汇文件名
     *
     * @param entryId   出口报关单号
     * @param storedFile 存储文件名称
     */
    @PostMapping("{entryId}/file")
    public void saveExportProceedsFile(@PathVariable String entryId, @RequestBody String storedFile) {
        exportProceedsService.saveExportProceedsFile(entryId, storedFile);
    }

    /**
     * 出口收汇文件是否已存储
     *
     * @param entryId 出口报关单号
     */
    @GetMapping("{entryId}/file/stored")
    public boolean exportProceedsFileStored(@PathVariable String entryId) {
        return exportProceedsService.exportProceedsFileStored(entryId);
    }

}
